全部文档

OPC UA设备接入实践

本文介绍将基于OPC UA协议的设备(以下统称设备)接入边缘节点,及其与边缘管理平台交互的过程。

搭建OPC UA服务器

这里使用以python语言实现的opcua开源库搭建OPC UA模拟服务器,因此对操作系统没有限制,只须能安装上python 3.5.2及以上版本,python安装过程略。

下面以linux系统为例,根据如下步骤,完成OPC UA Server的搭建。

1.使用 pip(Python 3.4+ 版本都自带 pip) 工具安装依赖包opcua 0.98.3及以上版本,此处为0.98.7:

pip install opcua==0.98.7

2.下载OPC UA服务器源文件simulated_opcua_server.py,此源代码模拟了一个灯设备,有温度和开关状态两个属性,属性值每5秒随机改变。

wget --no-check-certificate [simulated_opcua_server.py链接地址]

3.后台运行OPC UA服务器:

python3 simulated_opcua_server.py 2>&1 1>/dev/null

安装OPC UA客户端

使用OPC UA边缘应用接入OPC UA设备时需要先配置设备的产品物模型,该过程需要借助OPC UA客户端作为辅助工具来浏览OPC UA服务器模拟的所有设备节点信息。这里使用windows系统上的OPC UA客户端工具UaExpert,过程如下:

1.下载并安装UaExpert

2.打开UaExpert,点击工具栏上的opcua_02.png工具添加OPC UA Server:

opcua_01.png

3.在弹出框中的Endpoint Url输入框中按下图所示输入OPC UA服务器Url,端口默认是4840,因此按下图只需修改其中的ip地址即可。

opcua_03.png

4.点击OK按钮连接OPC UA服务器成功后,可以看到设备信息如下图所示。

opcua_04.png

5.在左边点击各节点,可以在右上角节点信息中查看所选节点的对应信息。在配置OPC UA产品物模型时,就需要查看设备各属性的类型和值。

接入OPC UA设备

登录 边缘管理平台 进行设备接入。

前提条件:已部署边缘节点并连接上边缘管理平台,具体步骤参考边缘节点环境搭建最佳实践

创建OPC UA产品

产品是对具有相同属性的一类终端设备的抽象,它定义了该类设备共同的一组功能属性也叫物模型。

1.在边缘节点设备->产品界面,点击右边的添加产品按钮:

opcua_11.png

2.在弹出界面中输入自定义产品名称,但必须选择协议类型为OPC UA

opcua_12.png

3.输入完成后,点击添加按钮,回到产品界面。

opcua_13.png

创建OPC UA产品物模型

1.点击OPC UA产品的详情,进入产品详情界面。

opcua_14.png

2.在产品详情选项卡界面中,依次点击编辑功能定义按钮->添加自定义功能按钮。

opcua_15.png

3.在弹出框输入界面中按下图输入功能信息,属性类型和节点名称需要参考OPC UA服务上实际设备属性填写,可对照UaExpert上显示的信息。

opcua_18.png

参数 说明
功能名称 方便浏览阅读的名称,建议为汉字。
标识符 方便程序使用的名称,唯一标识同一产品里的该功能,建议用英文。
单位 功能属性值的单位,比如温度单元摄像度,长度的单位米。
属性类型 平台存储与使用的该功能属性的值类型:
String,字符串,需要额外指定字符串长度;
Boolean,布尔,值只有true和false,需要添加对应的文字描述;
Integer,32bit有符号整型,需要额外指定最小值和最大值;
Long,64bit有符号长整型,需要额外指定最小值和最大值;
Float,32bit单精度浮点数,需要额外指定最小值和最大值,以及小数部分精度,0.1、0.01分别表示精确到1位、2位小数,以此类推,最多7位小数;
Doube,64bit双精度浮点数,需要额外指定最小值和最大值,以及小数部分精度,0.1、0.01分别表示精度1位、2位小数,以此类推,最多15位小数;
Date,时间戳类型,实际上是64bit无符号长整型;
Enum,枚举,需要额外指定具体的值,但范围必须在0到127之间。
本属性参考UaExpert上的节点数据类型DataType字段填写。
节点名称 本功能属性在OPC UA server上的节点名称,参考UaExpert上的节点属性DisplayName字段填写。
读写类型 指定该功能的读写类型:读,写。 。

4.回到产品功能定义列表,点击发布按钮发布物模型。

opcua_20.png

5.以相同步骤添加其它属性。

opcua_19.png

创建OPC UA设备

这里的设备对应一个实际终端设备,是抽象模型。

1.切换到设备列表选项卡界面,点击添加设备按钮。

opcua_21.png

2.在弹出框输入界面,自定义输入设备名称。

opcua_22.png

3.点击添加,回到设备列表界面。至此一个设备添加完成。

opcua_23.png

部署OPC UA应用

OPC UA应用须为边缘管理平台 边缘市场 官方提供的镜像应用,内部集成了OPC UA客户端驱动,本为边缘节点的可选模块,这里需要将它部署到将要接入OPC UA设备的边缘节点。

1.在边缘节点管理里找到已部署好的边缘节点,然后点击查看按钮。

opcua_24.png

2.进入边缘节点列表,找到要接入OPC UA设备的节点,确保显示为在线,记住节点名称,后面部署应用需要用到。

opcua_25.png

3.进入边缘市场,找到与边缘节点CPU架构一致的OPC UA应用,点击部署应用

opcua_26.png

4.在进入部署设置界面,如下图修改关联边缘节点为已部署好的边缘节点的产品名称和节点名称,输入首字符时会自动联想选择。其它输入项可默认,也可根据实际需要修改。最后点击创建按钮部署到边缘节点中,如果成功则会跳转到容器应用界面。

opcua_27.png

确保容器网络指定的是主机网络

opcua_28.png

opcua_28.png

添加子设备通信通道

通信通道,也即通信方式。OPC UA协议是基于TCP的协议。在边缘节点下添加OPC UA通信通道,可以提供给本边缘节点下的OPC UA设备使用。

1.回到边缘节点列表,找到边缘节点,点击详情按钮进入节点详情界面。

opcua_29.png

2.按如下图切换选项卡:边缘节点配置->子设备通信通道->OPC UA协议,点击新增通道按钮。

opcua_32.png

3.在弹出框输入界面中按下图配置,通道协议选OPC-UA,通道地址填实际的OPC UA服务器的地址。点击分配按钮添加通道信息。

opcua_33.png

4.添加完成后回到OPC UA协议通道列表,多了一条记录。

opcua_34.png

关联OPC UA设备

即将哪些设备接入到当前边缘节点。

1.按如下图切换选项卡:边缘节点配置->子设备管理->OPC UA协议,点击关联按钮。

opcua_30.png

2.在弹出框输入界面中先勾选要关联的OPC UA设备,再点击添加按钮。

opcua_31.png

3.添加完成后回到OPC UA子设备列表,多了一条记录。

opcua_35.png

配置OPC UA设备通道

指定OPC UA设备驱动去哪里读写该设备的数据,即连接OPC UA服务器,读取服务器里对应设备的属性数据。

1.在边缘节点配置->子设备管理->OPC UA协议的OPC UA子设备列表,点击每个设备行右边的通道配置

opcua_36.png

2.在弹出框输入界面上选择之前添加的OPC UA设备通道,节点路径为OPC UA服务上的节点路径,以Objects开头且以/间隔,如下图。填完后点击分配按钮。完成。

opcua_37.png

添加云边消息【平台转发】

如果已配置,可跳过。

边缘网关收到设备上传的数据,默认是不上报给边缘云平台的。如果需要上报给边缘云平台,则需要先添加一个对应的消息路由。

1.进入云边消息->路由实例界面,点击添加路由实例按钮。

opcua_05.png

2.在弹出框输入界面中,如下图配置好后,点击完成按钮。

opcua_41.png

3.成功后回到云边消息客户端列表界面,新增了一条记录。

opcua_42.png

4.回到边缘节点管理-边缘节点详情页面,如下图切换到边缘节点配置->云边消息列表,点击分配路由实例按钮。

opcua_43.png

5.在弹出框输入界面中勾选刚才创建的路由实例,点击分配按钮。

opcua_44.png

6.完成之后回到云边消息列表。

opcua_45.png

部署配置方案

上述所有配置包括子设备、通信通道、云边消息等配置操作完成后,还只是保存在平台侧,需要下发到边缘节点。下发之后,如果一切无误,边缘节点就会采集设备数据并上报到边缘云平台。

1.回到边缘节点详情界面,点击右上角的部署配置按钮部署到边缘节点中。

opcua_38.png

查看数据上报

1.在OPC UA设备列表里点击OPC UA设备行右边的详情,查看设备数据。

opcua_39.png

2.可以点击每行属性前的箭头按钮展开数据视图。比如点击温度属性。

opcua_46.png

3.温度属性数据视图如下:

opcua_47.png

results matching ""

    No results matching ""